<aside class="sidebar-250 canvas-right bg-default ">
  <header class="header navbar clearfix bb bg-default pl0 pr0">
    <p class="navbar-text"><i class="fa fa-sitemap mr5"></i> 栏目列表</p>
  </header>
  <div class="content-wrap no-p">
    <div class="wrapper2">
      <div class="m5">
        <div id="jsTree"></div>
      </div>
    </div>
  </div>
</aside>
<section class="content-wrap bg-white">
  <header class="header navbar bg-white shadow">
    <div class="btn-group tool-button">
      <a class="btn btn-primary navbar-btn" href="/private/cms/article/add" data-pjax id="addLink"><i class="ti-plus"></i> 添加文章</a>
      <button class="btn btn-danger navbar-btn" onclick="delCheck()"><i class="ti-close"></i> 删除文章</button>
    </div>
    <div class="pull-right offscreen-right">
      <button class="btn btn-primary navbar-btn" onclick="sublime.toggleFilter('.cd-panel')"><i
          class="fa fa-sliders"></i> 筛选
      </button>
    </div>
  </header>
  <div class=panel-body style="padding-top: 50px;">
    <div class="table-responsive no-border">
      <input id="channelId" type="hidden">
      <table class="table table-bordered table-striped mg-t datatable">
        <thead>
        <tr>
          <th>文章ID</th>
          <th>文章标题</th>
          <th>作者</th>
          <th>客户端</th>
          <th>发布时间</th>
          <th>发布状态</th>
          <th>操作</th>
      </table>
    </div>
  </div>
</section>
<div class="cd-panel from-right">
  <header class="cd-panel-header">
    <h4>高级筛选</h4>
    <a href="javascript:;" class="cd-panel-close text-center"><i class="ti-close"></i> </a>
  </header>
  <div class="cd-panel-container">
    <div class="cd-panel-content shadow">
      <div class="form-group">
        <label for="title">文章标题</label>
        <input type="text" id="title" name="title" class="form-control" placeholder="文章标题" autofocus>
      </div>
      <button id="searchBtn" type="button" class="btn btn-default">查询</button>
    </div>
  </div>
</div>
<!-- 删除 -->
<div id="dialogDelete" class="modal fade bs-modal-sm" tabindex="-2" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h4 class="modal-title">删除文章</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-xs-12">
            删除文章后无法恢复，确定删除吗？ <br/>
          </div>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
        <button id="ok" type="button" class="btn btn-primary" data-loading-text="正在删除...">确 定</button>
      </div>
    </div>
  </div>
</div>
<!-- 删除选中 -->
<div id="dialogDeleteCheck" class="modal fade bs-modal-lg" tabindex="-2" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h4 class="modal-title">删除文章</h4>
      </div>
      <div class="modal-body">
        <div class="row">
          <div class="col-xs-12 mb10">
            删除文章后无法恢复，确定删除已选文章吗？
          </div>
          <div class="col-xs-12">
            <ul id="checkedUser" class="list-group"></ul>
          </div>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
        <button id="ok" type="button" class="btn btn-primary" data-loading-text="正在删除...">确 定</button>
      </div>
    </div>
  </div>
</div>
<!-- 详情 -->
<div id="dialogDetail" class="modal fade bs-modal-sm" tabindex="-3" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">

    </div>
  </div>
</div>
<script language="JavaScript">
  var datatable;
  function initDatatable() {
    datatable = $('.datatable').DataTable({
      "dom": '<"toolbar">frtip',
      "searching":false,
      "processing": false,
      "serverSide": true,
      "select": true,
      "ordering": true,
      "language": {
        "url": "/plugins/datatables/cn.json"
      },
      "preDrawCallback": function () {
        sublime.showLoadingbar($(".main-content"));
      },
      "drawCallback": function () {
        sublime.closeLoadingbar($(".main-content"));
      },
      "ajax": {
        "url": "/private/cms/article/data",
        "type": "post",
        "data": function (d) {
          d.channelId = $('#channelId').val();
          d.title = $('#title').val();
        }
      },
      "order": [[0, "desc"]],
      "columns": [
        {"data": "id", "bSortable": true},
        {"data": "title", "bSortable": true},
        {"data": "author", "bSortable": true},
        {"data": "client", "bSortable": true},
        {"data": "publishAt", "bSortable": true},
        {"data": "disabled", "bSortable": true}
      ],
      "columnDefs": [
        {
          "render": function (data, type, row) {
            return '<div class="btn-group"><button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">' +
              ' <i class="ti-settings"></i> <span class="ti-angle-down"></span></button><ul class="dropdown-menu" role="menu">' +
              '<li><a href="/private/cms/article/detail/' + row.id + '" data-toggle="modal" data-target="#dialogDetail">预览</a></li>' +
              '<li><a href="/private/cms/article/edit/' + row.id + '" data-pjax>修改</a></li>' +
              '<li><a href="javascript:;" onclick="del(' + row.id + ')">删除</a></li>' +
              '<li class="divider"></li>' +
              '<li><a href="javascript:;" onclick="enable(' + row.id + ')">发布</a></li>' +
              '<li><a href="javascript:;" onclick="disable(' + row.id + ')">取消发布</a></li>' +
              '</ul></div>';
          },
          "targets": 6
        },
        {
          "render": function (data, type, row) {
            if (!data) {
              return '<i id="disable_' + row.id + '" class="fa fa-circle text-success ml5"></i>';
            } else {
              return '<i id="disable_' + row.id + '" class="fa fa-circle text-danger ml5"></i>';
            }
          },
          "targets": 5
        },
        {
          "render": function (data, type, row) {
            if (data) {
              return new Date(parseInt(data*1000)).toLocaleDateString();
            }
          },
          "targets": 4
        }
      ]
    });
    datatable.on('click', 'tr', function () {
      $(this).toggleClass('selected');
    });
    $("#searchBtn").on('click', function () {
      datatable.ajax.reload();
    });
  }
  var unitTreeTable;
  var selected = [];
  function initTreeView() {
    $("#jsTree").jstree({
      plugins: ["wholerow"],
      core: {
        data: {
          url: function (node) {
            return node.id === "#" ? "/private/cms/article/tree" : "/private/cms/article/tree?pid=" + node.id
          }
        },
        multiple: false
      }
    }).on("select_node.jstree", function (node, selected) {
      var id = selected.selected;
      $("#channelId").val(id);
      $("#searchForm").find("input[type='text']").val("");
      if (datatable) {
        $(".cd-panel-content").find("input").val("");
        datatable.ajax.reload();
      } else {
        initDatatable();
      }
      $("#addLink").attr("href","/private/cms/article/add?channelId="+id);
    }).on("loaded.jstree", function (node, jstree) {
      $(node.target).find("li:first div").addClass("jstree-wholerow-clicked");
    });
  }
  function del(id) {
    var dialog = $("#dialogDelete");
    dialog.modal("show");
    dialog.find("#ok").unbind("click");
    dialog.find("#ok").bind("click", function (event) {
      var btn = $(this);
      btn.button("loading");
      $.post("/private/cms/article/delete/" + id, {}, function (data) {
        if (data.code == 0) {
          datatable.ajax.reload(null,false);
        } else {
          Toast.error(data.msg);
        }
        //重置按钮状态，关闭提示框
        btn.button("reset");
        dialog.modal("hide");
      }, "json");
    });
  }
  function delCheck() {
    var chks = datatable.rows('.selected').data();
    if (chks.length > 0) {
      var ids = [];
      $.each(datatable.rows('.selected').data(), function (i, n) {
        ids.push(n.id);
      });
      var dialog = $("#dialogDeleteCheck");
      dialog.modal("show");
      dialog.find("#ok").unbind("click");
      dialog.find("#ok").bind("click", function (event) {
        var btn = $(this);
        btn.button("loading");
        $.post("/private/cms/article/delete", {ids: ids}, function (data) {
          if (data.code == 0) {
            datatable.ajax.reload(null,false);
          } else {
            Toast.error(data.msg);
          }
          btn.button("reset");
          dialog.modal("hide");
        }, "json");
      });
    } else {
      Toast.warning("请先选择要删除的文章！");
    }
  }
  function enable(id) {
    $.post("/private/cms/article/enable/" + id, {}, function (data) {
      if (data.code == 0) {
        $("#disable_" + id).attr("class", "fa fa-circle text-success ml5");
      } else {
        Toast.error(data.msg);
      }
    }, "json");
  }
  function disable(id) {
    $.post("/private/cms/article/disable/" + id, {}, function (data) {
      if (data.code == 0) {
        $("#disable_" + id).attr("class", "fa fa-circle text-danger ml5");
      } else {
        Toast.error(data.msg);
      }
    }, "json");
  }
  $(document).ready(function () {
    initTreeView();
    initDatatable();
    $("#dialogDetail").on("hidden.bs.modal", function () {
      $(this).removeData("bs.modal");
    });
  });

</script>
